<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>indexOf</title>
  <script>

    /**
     * indexOf(searchString, [positions]) 方法，给定一个参数：要搜索的子字符串，搜索整个调用字符串，并返回指定子字符串第一次出现的索引。
     * 给定第二个参数：一个数字，该方法将返回指定子字符串在大于或等于指定数字的索引处的第一次出现。
     * searchString:要搜索的子字符串，强制转换为字符串。如果不带参数调用方法，searchString 将被强制转换为 "undefined"
     * position:该方法返回指定子字符串在大于或等于 position 位置的第一次出现的索引，默认为 0。
     * 返回值:查找的字符串 searchValue 的第一次出现的索引，如果没有找到，则返回 -1。
     */

    /** 
     * 当使用空字符串搜索时的返回值
     * 搜索空字符串会产生奇怪的结果。如果没有第二个实参，或者有第二个实参的值小于调用字符串的长度，返回值与第二个实参的值相同：
     */
    'hello world'.indexOf('') // 返回 0
    'hello world'.indexOf('', 0) // 返回 0
    'hello world'.indexOf('', 3) // 返回 3
    'hello world'.indexOf('', 8) // 返回 8

    /** 然而，如果有第二个参数，其值大于或等于字符串的长度，则返回值为字符串的长度： */
    'hello world'.indexOf('', 11) // 返回 11
    'hello world'.indexOf('', 13) // 返回 11
    'hello world'.indexOf('', 22) // 返回 11


    'Blue Whale'.indexOf('Blue')      // 返回  0
    'Blue Whale'.indexOf('Blute')     // 返回 -1s
  </script>
</head>

<body>

</body>

</html>